Guild icon
PLU CSCI 390 Group
Text Channels / general
Eric Golde pinned a message to this channel. 27-Feb-23 01:02 PM
Chris joined the server. 27-Feb-23 01:06 PM
Avatar
yo yo!
Avatar
yo yo !
13:07
Avatar
I think I set Discord permissions up so everyone should have access to do whatever
Seth joined the server. 27-Feb-23 01:07 PM
Avatar
Hello Hello!
Avatar
Hello Friend!
Avatar
What we thinking y'all for the client so far?
Avatar
Personally I know Java swing a lot more then Javascript, but Ive been doing a lot more NodeJS work for backend, so i'm down to do a JS frontend
13:12
I don't know react, vue, though 😐
13:12
I'm still stuck in time with Java canvas, boot strap, etc lol (edited)
Avatar
I am more knowledgable with javascript than java swing. But I've dabbled with Java.swing for classes. I'm down as well for JS frontend. @Seth and also Brandon when he gets on?
Avatar
I am in the same for java.swing for some classes. but i have very little experience with NodeJS
Avatar
@Chris If we were to do the front end with JS, what were you thinking. Java canvas? Bootstrap with a table and div elements?
13:18
Also, do yall have any team name ideas off the top of your head?
Avatar
@Eric Golde, for JS it's probably easiest to work directly with the DOM as opposed to using a canvas. For CSS styling, we can use bootstrap, but if we care about how it looks (idk) we could look into using our own css or another lib. Not sure about the name haha. Still deciding whether not we should do a meme name or something that Wolff suggested. https://en.wikipedia.org/wiki/List_of_proper_names_of_stars (edited)
These names of stars that have either been approved by the International Astronomical Union or which have been in somewhat recent use. IAU approval comes mostly from its Working Group on Star Names, which has been publishing a "List of IAU-approved Star Names" since 2016. As of August 2018, the list included a total of 336 proper names of stars.
Brandon joined the server. 27-Feb-23 01:48 PM
Avatar
Any ideas for names? Wolff gave us Webb as our default group name.
Avatar
I cant think of any lol
Avatar
i can't either
Avatar
Ok cool, @Brandon have you thought about whether or not you wanna do javascript or java swing for the client?
Avatar
I mean my thoughts are pretty much set. I've never touched Javascript, so if we so that I will probably not be able to directly contribute without serious research. With Java Swing I might at least have a chance to be helpful. As perhaps a last case if the three of you are really set on Javascript, I can see with Professor Wolfe about switching groups with someone who can do that
Avatar
Thanks for sharing your thoughts, Brandon. It's great that you have some experience with Java Swing and we definitely want to leverage everyone's skills and strengths for this project. At the same time, we don't want you to feel left out or like you can't contribute to the frontend. No one here is deadset on Javascript, I just suggested that we could go that route because it's a very popular and in demand skill in the industry. That being said, would everyone just wanna do Java Swing then? (edited)
Avatar
I’m good with Java swing
Eric Golde pinned a message to this channel. 01-Mar-23 12:39 PM
Avatar
Heyo just gving yall a heads up today. I can text here and there but mey be slow to reply to messages. Picking mutiple family members up from the airport, but because of how delayed flights have gotten, I basically drive back and forth from the airport constantly and wait in the cell lot
šŸ‘ 1
Avatar
Where is our repository? I am having trouble finding it
13:32
nvm thanks @Seth
Avatar
Heyo. Just wondering what yalls thoughts are for a meeting either online or in person. Monday 3/6 I am free after 2PM Tuesday 3/7 I am on call at work pretty much all day. I won't be on. Wednesday 3/8 I am free after 2PM Thursday 3/9 I am free all day Friday 3/10, I am not sure about. Waiting to hear back if I am on call etc. Only thing is I pick up a friend around 4:10 every day, but I should be back by 4:30.
11:35
I have also pushed puzzle 1-2-2.json
Avatar
I’m free everyday after 2pm
Avatar
My schedule currently is a bit start and stop, so rather than try and enumerate it all in text, here is a picture of my G-Cal for the next week (edited)
11:45
Avatar
It would be useful to me if we could at least start delegating tasks. If we can meet relatively soon, we can decide it then. If not, we can decide over Discord. Here are what are required to turning for Iteration 1: An initial domain model User Interface sketches An initial implementation of client (probably a UI with no real functionality) Puzzle Files User Stories
Avatar
Avatar
Brandon
It would be useful to me if we could at least start delegating tasks. If we can meet relatively soon, we can decide it then. If not, we can decide over Discord. Here are what are required to turning for Iteration 1: An initial domain model User Interface sketches An initial implementation of client (probably a UI with no real functionality) Puzzle Files User Stories
I'm happy to start on UI design both sketches and programming with Java Swing
12:32
Got a when2meet up for times this week latest it goes is Thursday
12:33
Thursdays look like a better time given Brandon's and Eric's schedule, but I think we could sneak in something sooner hopefully (edited)
Avatar
Appriciate it, thanks!
Avatar
Access Google Drive with a Google account (for personal use) or Google Workspace account (for business use).
Eric Golde pinned a message to this channel. 06-Mar-23 01:36 PM
Avatar
@Brandon fill when2meet out when you can. It looks like we have some good overlap right now (edited)
Avatar
Filled out the When2Meet. Also theoretically could have availability on Wednesday, but it would mean missing work for me, which I'd obviously prefer not to do. However, it looks like there is a Thursday time that works, so that shouldn't be necessary
šŸ‘ 1
Avatar
For the user stories, do we want these all in one eocument on the drive? Haven't looked in the drive yet, I may have some down time at work unclear rn (edited)
Avatar
Would it be better to have them all in one document?
Avatar
Yes, I have a document called backlog (temporary). All user stories should go there (edited)
Avatar
Avatar
Chris
Yes, I have a document called backlog (temporary). All user stories should go there (edited)
You rock, thanks. Still in a work meeting but I'll try to look at the document later tonight or tomorrow afternoon
Avatar
@everyone Great. Thanks for filling it out everyone. Do we want to meet this Thursday 3:30-4:00? On discord or IRL?
Avatar
Avatar
Chris
@everyone Great. Thanks for filling it out everyone. Do we want to meet this Thursday 3:30-4:00? On discord or IRL?
I can do either. Online a bit easier, but I'm only a few min drive from campus
Avatar
Avatar
Eric Golde
I can do either. Online a bit easier, but I'm only a few min drive from campus
Same here ^
Avatar
Either is fine with me. But if everyone wants to discord, we can schedule an event via discord 🤩
šŸ‘ 1
Avatar
Ok, cool well I'll go ahead and schedule it
Avatar
Hey guys just wanna to let y’all know I’m feeling under the weather so I won’t be in class today (edited)
Avatar
Avatar
Seth
Hey guys just wanna to let y’all know I’m feeling under the weather so I won’t be in class today (edited)
All good, get well soon my dude!
Avatar
Avatar
Eric Golde
All good, get well soon my dude!
Thanks šŸ˜…
Avatar
@Chris Whenever you have a quick moment, would you mind looking at the user stories I submitted? I feel like 3 of them I can combine into one user story. If you think what I have written is on the right track, I am more than happy to do the two remaining server requirements that we didn't assign to anyone yesterday
Avatar
Since Professor Wolfe said that we only need to focus on the client user stories, do we want to shift our work load around that at all? Specifically, do we still want to try and write server user stories or just client ones?
Avatar
@Seth specifically, but anyone is free to look and offer suggestions. I made an initial domain model sketch using Excalidraw. I'll put a link to it in resource as well as the actual file/png in the shared G-folder
19:20
19:20
It feels a little empty in some places, so I'm definitely open to ideas
Avatar
@Brandon some initial feedback. To clarify, didn’t Wolff say that this could have multiplayer? So that means that many players can play a puzzle
20:27
Also, I believe there should only be one database in total. A database can have many connections though (edited)
Avatar
alright @everyone whos ready for a meeting lol?
Avatar
Hey y’all I apologize. I completely forgot about our meeting today, haven’t had much sleep and stressed a bit.
Avatar
Avatar
Chris
Hey y’all I apologize. I completely forgot about our meeting today, haven’t had much sleep and stressed a bit.
You’re all good dude
Avatar
Avatar
Chris
Hey y’all I apologize. I completely forgot about our meeting today, haven’t had much sleep and stressed a bit.
its chill, I totally understand
Avatar
@Brandon and @Seth, I know Dr. Wolff mentioned in class about holding off on the server side stories. An alternative task, if you guys are interested, is reading my design doc and ask questions, edit anything weird, or offer suggestions. https://github.com/plu-cs390/starb-webb/tree/c85053d43605b7b3afbaef8e7c89d3fdc01d37d4/doc/iteration1
Avatar
I will do my best to do so regardless. I am unfortunately rather busy this weekend, but I will try to get around to it. I gave it a quick glance over, and the designs looked incredible, but I will let you know if I have any feedback.
Avatar
Yeah, no worries. There are some choices I made with the functionality that can be discussed before we turn it in.
Avatar
Avatar
Chris
@Brandon and @Seth, I know Dr. Wolff mentioned in class about holding off on the server side stories. An alternative task, if you guys are interested, is reading my design doc and ask questions, edit anything weird, or offer suggestions. https://github.com/plu-cs390/starb-webb/tree/c85053d43605b7b3afbaef8e7c89d3fdc01d37d4/doc/iteration1
When I click on the link it’s giving me a 404 error
Avatar
Oh thanks for pointing that out
12:03
This would should work
12:03
Make sure you are signed in too, its a private repo
Avatar
Alright I got it lol
Avatar
Hey guys I’m planning on getting those user stories down by tomorrow this weekend has been super rough for me :/
Avatar
Its chill, thanks for the heads up
23:37
I haven't finished any more of the UI yet. I'll work on it more tomorrow. I went out on a date Saturday and moved a couch and stuff today I have some overlay tests that I can show at somepoint
Avatar
@Brandon, how are we at with the domain model and the puzzle file?
Avatar
Yeah sorry about that. Puzzle file is done, just need to get it pushed (I did in fact misread, but I redid it last night). Still trying to figure out how to make sure it pushes to the correct folder in the repository if anyone can provide insight there. Domain model is pretty much done, just making those few final changes, getting it updated and pushing that as well. These things may not happen till late tonight, because theatre rehearsals are killer a few days before show open.
šŸ‘ 1
Avatar
Gotcha, just wondering b/c we got a day left. I wanna make sure, we are all doing good. I had talk to Seth today about his progress. I can help you out. What specifically are you having trouble with? As long as you are on the main branch and you have the puzzle file in the puzzles directory you should be golden. The domain model I believe should go in doc/iteration1
Avatar
I have the puzzle file stored elsewhere after I made it, for ease of my access. Do I just have to move it to the respective folder in my local repository and then push it?
Avatar
Yep, I believe you'll have to stage* deletion and commit it again in the folder you moved it to btw. And commit both. And yep after that you just push it (edited)
Avatar
Oh yeah, its actually in a folder completely separate from the local repo right now, so I may not have to do the first step, but that's good confirmation
šŸ‘ 1
Avatar
Oh if that's the case, yeah just moving it, stage and commit, and push it is the order.
17:50
Also when you have the time, I made some comments on with yours and @Eric Golde's user stories. Please take a look at that and making any necessary revisions, I even offered edits to help speed up the process
Avatar
I'll take a look tonight. I thought I had a mostly free day today bur it's just been chaos with a friend of mine
17:53
I'm finishing up a assignment for English, I'll take a look at your comments right after
šŸ‘ 1
17:53
I'm trying to keep my eyes open atm, I got that racoon look going atm
Avatar
Avatar
Chris
Also when you have the time, I made some comments on with yours and @Eric Golde's user stories. Please take a look at that and making any necessary revisions, I even offered edits to help speed up the process
Just applied your edits, and finished the last two user stories on my end
Avatar
Great thanks Eric! šŸ˜„
Avatar
hey guys i am working on the puzzle file and for the region what is the order yall went through?
Avatar
its row,col
Avatar
i get that but when you are going to the next region do you just pick which one?
Avatar
oh, I see what you mean
20:17
yeah I just picked the next one
20:17
there isn'tr a needed order to it
20:17
I don't think
Avatar
ok and for the solutions you just match them to which order you made the regions?
Avatar
That's a good question. I didn't i just listed all of them out
Avatar
Alright makes sense
Avatar
alright i have my puzzle done, where does it go in github?
22:04
uh i uploaded my puzzle to the puzzle directory in our github if someone could look over it tomorrow and see if it looks good but i gotta head to bed for work
Avatar
awesome, thanks so much
10:56
i got clases back to back, but if its not correct or whatever we can always go back and make changes to the file (edited)
Avatar
I think I typed this out but never actually sent. Last night I got the domain model and puzzle set up and pushed to the main branch. I also looked at and made some changes to my respective user stories (really just accepted Chris's suggestion)
Avatar
@Brandon, thanks for making those changes. I noticed here on the deliverables, that the initial domain model has be to a pdf doc/iteration1. Also need a written rationale accounted in the PDF
Avatar
Okay, the rationale Doc is already written up, just not added. I will try to get those formatted and uploaded properly
šŸ‘ 1
Avatar
Gotcha. I've moved your domain model into the doc/iteration folder (edited)
Avatar
Just a heads up, I made a branch for some UI fuckery testing just so I have a place to put it. May use it for the future, but didn't want to push it to the main branch because its not functional at all
Avatar
@everyone I have added our user stories to our issues page on GitHub https://github.com/plu-cs390/starb-webb/issues But I will also be adding document as a pdf in our iteration folder
Avatar
You rock. I appreciate it!
ā¤ļø 1
Avatar
Okay, domain model PDF (with write up) is up in the repository. Let me know if theres any last things that need to happen, though I will be pretty busy today (theatre dress rehearsal)
Avatar
Great, well looks like we all have our stuff turned in. I'm going to go ahead and add our backlog and tag it
14:59
14:59
https://github.com/plu-cs390/starb-webb/releases/tag/iteration1 its been tagged! I think we got everything guys! Great job everyone!
Avatar
@Chris hey, I got your emails finally
šŸ‘€ 1
17:27
Avatar
@Chris I can't make in person fridays, I drive to bellevue every friday to be with my family. I can do fridays meetinv virtually after 3pm
09:10
(i didn't want to reply in #announcements )
Avatar
What about Monday?
09:11
@Eric Golde
Avatar
Avatar
Seth
What about Monday?
any of those monday times should work for in person or virtual (edited)
Avatar
Lol, I didn't even mean to put it in announcements. But shall I send a email to Wolff and see if we can do a virtual?
10:03
I know @Brandon prefers Friday (edited)
Avatar
I can potentially do a Monday time, I'll just have to look at the options
10:05
Yeah, I can do the Monday times, though the earlier the better probably
Avatar
Does this time work for @everyone ?
šŸ‘ 3
Avatar
Avatar
Chris
Does this time work for @everyone ?
Works for me
Avatar
Added you y'all to the event
14:45
i think..
Avatar
I didn't see anything onngcal or email, but its okay
Avatar
I have started to refactor and rename packages, as well as a proof of concept way to switch between screens when you click a button
16:33
Ill start to get working on the ui design stuff hopefully more tonight
Avatar
That's great Eric! I'll check it out !
Avatar
Also slowly adding comments to things. I'm weirdly tired tonight its not even 9pm, but I'll keep working on this tomorrow either before or after my date
Avatar
@Chris I have a thought how to fix the click through issues with that glass pane pop-up you made. I'll try to get it more implemented into the screen class with like Screen#showPopup(screen)
Avatar
The problem of being still able to interact with elements on the parent frame?
Avatar
Yes. I think I can temporarily store all listeners, and then remove them from all elements
08:33
When you close the pop-up, it adds all the listeners back
08:34
Something like that, not 100% sure on implementation atm
08:34
I've been working on getting the main puzzle screen done. But it's proving to be a bit of a challenge getting all the rounded rectangles aligned etc
🤩 1
Avatar
Oh, I'd love to see it. I came up with a solution myself too, you can disable the parent frame entirely, and then I also found a way to make sure that the modal is always the one active parent.setEnabled(false); parent.setAlwaysOnTop(false); parent.setFocusableWindowState(false); ... this.setAlwaysOnTop(true); <-- for modal
Avatar
If that blocks clicking but still shows the parent frame let's do that
Avatar
Just wanted to double check what were we suppose to do before meeting with Wolff?
Avatar
Yeah, it's a bit finicky this modal thing though. There's a lot of cases we would have to be aware of, and I'm not sure if its worth the headache--especially in windowed mode.
08:43
Current behavior
08:44
And yeah, I can make a PR for this. It's a big messy, I'm going to rename it to WebbModal and do a couple of other things (edited)
Avatar
Avatar
Seth
Just wanted to double check what were we suppose to do before meeting with Wolff?
Take a look at the stories on the Github and assign yourself stories you are interested in doing
Avatar
Ok with os canceled today I’ll look into it
Avatar
Avatar
Chris
And yeah, I can make a PR for this. It's a big messy, I'm going to rename it to WebbModal and do a couple of other things (edited)
Sounds like a plan, I appreciate it. I'll keep working on implementing all the screens. And once the pop pr is in I'll start trying to make those as well
šŸ”„ 1
Avatar
Avatar
Seth
Ok with os canceled today I’ll look into it
Don't worry about it, you can always drop stories that you have assigned. I didn't specify how difficult story was and we can talk as a team about it
Avatar
Avatar
Chris
Don't worry about it, you can always drop stories that you have assigned. I didn't specify how difficult story was and we can talk as a team about it
Roger see y’all in class!
šŸ‘Œ 2
Avatar
Avatar
Seth
Ok with os canceled today I’ll look into it
oh damn! i didn't see that rip caley
Avatar
Avatar
Chris
oh damn! i didn't see that rip caley
Yeah I saw it last second at work lol and I jumped for joy lol
08:54
Not really but you get it lol
šŸ˜‚ 1
Avatar
@Chris I have a popup working with a close button, and a method Screen#showPopup I just can't get the Springlayout working in the dialog 😐 Mind taking a look at somepoint? https://github.com/plu-cs390/starb-webb/tree/popup-idea https://github.com/plu-cs390/starb-webb/tree/popup-idea/src/main/java/webb/client/ui/screens/popup (edited)
09:28
I do want to see your implementation as well, I had a few min before class and wanted to see if I could figure it out
Avatar
Sure i'd be happy to check it out at some point today
Avatar
No rush on it, it can even be after the meeting or whenever
09:30
Its basically just a slightly modified version of your test modal, but with a show and close function, and takes in a screen and not a JPanel
09:30
Theres a back button and a label that is suppose to be centered, but the layout isn't being applied
Avatar
@everyone Hey gang, I hate to do this but (like Caley) I also got sick this weekend and don't think I'll be making it to Wolfe's class. That being said, I don't want to leave us lacking during our meeting, so I'm thinking maybe someone can have me on a Zoom call or something similar? Or I can come in just for the meeting? Let me know I suppose, what feels appropriate
09:45
Or a Discord call I guess
Avatar
Avatar
Brandon
@everyone Hey gang, I hate to do this but (like Caley) I also got sick this weekend and don't think I'll be making it to Wolfe's class. That being said, I don't want to leave us lacking during our meeting, so I'm thinking maybe someone can have me on a Zoom call or something similar? Or I can come in just for the meeting? Let me know I suppose, what feels appropriate
No worries thats totally understandable. Im happy to do a Discord call during the meeting for you to join. Its best you get better, and not risk getting anyone else sick
Avatar
Awesome, thank you. I'll let Professor Wolff know and see if he gives any directions. Just wanted to know if people would be willing
Avatar
Avatar
Brandon
Awesome, thank you. I'll let Professor Wolff know and see if he gives any directions. Just wanted to know if people would be willing
Sounds good, its easy to do. If you want, im happy to get in a call during lecture if that is at all helpful
10:06
Not sure if my microphone will pick up Wolff lecturing though (edited)
Avatar
Honestly, I appreciate it, but I'm just going to take a break from class today. I think the slides will provide enough context
Avatar
Okay
10:06
Just give me a ping if you change your mind
šŸ‘ 1
10:07
I hope you get better soon! Ill give you a ping when we just imto a meeting
Avatar
Thanks
Avatar
Avatar
Brandon
@everyone Hey gang, I hate to do this but (like Caley) I also got sick this weekend and don't think I'll be making it to Wolfe's class. That being said, I don't want to leave us lacking during our meeting, so I'm thinking maybe someone can have me on a Zoom call or something similar? Or I can come in just for the meeting? Let me know I suppose, what feels appropriate
Aww dang that sucks Brandon. Sorry to hear that. Get better soon!
Avatar
@Eric Golde, I looked at it, it might be do to something preferredSize?
12:35
I added this and it results in the components being centered in the middle
12:36
12:36
It still is messed up lol
Avatar
Avatar
Chris
@Eric Golde, I looked at it, it might be do to something preferredSize?
and this is why i should not write code early in the morning
12:36
tysm, ill get that fixed
Avatar
@Eric Golde also, you should call setLocationRelativeTo after you set the size of the window
12:37
originally, I think it was in the bottom right corner or something?
Avatar
Avatar
Chris
originally, I think it was in the bottom right corner or something?
Yeah, forgot to push that change šŸ˜›
šŸ˜› 1
12:39
šŸ”„ 1
Avatar
My thought is to have the size just dependant on what elements added. Not sure. Maybe ill just hard code the size 😐
12:40
Now its the question of do I pay attention to the lecture atm, or work on this
Avatar
RIght, but isn't the size dependent on the parent's size? This is where it gets really finnicky lol if you start resizing the parent after calling itit gets weird (edited)
Avatar
oh... it is.
12:41
fuck
12:41
alright yeah ill figure that out when I start designing the other panels (edited)
Avatar
Popups should be mostly fully implemented. I submitted a pull request for it. Once merged, ill start working on those with the rest of the screens
Avatar
Avatar
Eric Golde
No worries thats totally understandable. Im happy to do a Discord call during the meeting for you to join. Its best you get better, and not risk getting anyone else sick
If you can, please Discord call me into the meeting šŸ™‚
Avatar
Avatar
Brandon
If you can, please Discord call me into the meeting šŸ™‚
internet flakey hang on
Avatar
@everyone Yay no class today and no quiz Friday lol
Avatar
Oh? Well in that case, would it be helpful to have a small discord meeting or in person meeting about the project?
Avatar
Yeah wolf sent out an email just now explaining what I said and to also take that hour to meet with our groups if necessary
Avatar
Okay. Yall want to meet briefly in the classroom?
Avatar
Sounds good to me
Avatar
As I am still not fully recovered from my illness, I would like to join via Discord if that is all right with you all, but the rest of you are still free to meet in person.
Avatar
Avatar
Brandon
As I am still not fully recovered from my illness, I would like to join via Discord if that is all right with you all, but the rest of you are still free to meet in person.
sounds good, no worries
09:23
hope you get better soon my dude
Avatar
Thanks me as well. It is certainly better than it was Monday
Avatar
@Chris I can't get the program arguments thing working? Ive tried -Dusername=johndoe --Dusername=johndoe -username=johndoe --username=johndoe and System.getProperty can never find them? I am putting them in the VM arguments just like in the pull request?
09:09
Is there a reason we are doing Syste.getProperty and not using the String[] args passed into the main class?
Avatar
If I print out all the VM options being passed, it doesn't show up?
09:17
Avatar
for(Enumeration e = System.getProperties().propertyNames(); e.hasMoreElements();) { String key = (String) e.nextElement(); String value = System.getProperty(key); System.out.println(key + ": " + value); }
Avatar
I can't get VM options to work at all weirdly. But, I have created a PR for using program arguments: https://github.com/plu-cs390/starb-webb/pull/31
Avatar
I see that you are using gradle run as opposed to running the main method of Starb.client directly
09:52
This is due to the fact that gradle run doesn't pass the VM options when it runs
09:54
I was using VM options because of the fact that we can name and store several other properties, and access them via any class without the need passing it. But program arguments here works too because the main method only needs the username from the client and no other classes since it'll al be managed by player manager class
Avatar
Avatar
Chris
I see that you are using gradle run as opposed to running the main method of Starb.client directly
I can't get the normal just run to work either
Avatar
Can I see your run configuration
09:56
for StarBClient (edited)
09:57
I can print all the VM arguments and no matter what valid arguments I put they don't get passed in weirdly
Avatar
Interesting, weird well, lets go ahead use program args.
Avatar
Okay. It's most likely me doing something wrong, but I have had similier issues in the past before
Avatar
No worries, I like how you did it. I think it'll be less of a problem for everyone else
10:01
I feel bad essentally undoing what you did, thats all
Avatar
lol it's alright. It's not a big deal
10:03
I take no offense, I had no idea it could cause a lot of problems too. And arguably, is more correct. I didn't know you could pass args like that in the program arguments anyways.
Avatar
Ok, I appreciate it
10:07
I'll get it merged after I eat lunch
Avatar
Merged
šŸ‘ 1
Avatar
If it is at all helpful for understanding the UI code, ive uploaded the javadocs here: https://cs390.golde.org/javadoc/index.html
package index
13:15
it should have the documentation for every class & object and how it works etc
Avatar
Oh great! This is really good! This'll be really good when we turn in the project. I think we'll be able to host it via github pages repo too!
Avatar
@Eric Golde Get better soon man!
Avatar
Avatar
Chris
@Eric Golde Get better soon man!
Thanks my ndude, I appriate it (edited)
Avatar
@Brandon and @Seth, how are you guys doing so far in terms of work? I was planning on working on the package and class diagrams today and tomorrow?
Avatar
Avatar
Chris
@Brandon and @Seth, how are you guys doing so far in terms of work? I was planning on working on the package and class diagrams today and tomorrow?
I’ve done some research into it but will be starting the implementation to get them working tomorrow cuz gotta celebrate my birthday tonight lol
Avatar
Oh nice! Happy Birthday @Seth !
13:02
Avatar
Avatar
Chris
Oh nice! Happy Birthday @Seth !
Thanks!
Avatar
Avatar
Chris
@Brandon and @Seth, how are you guys doing so far in terms of work? I was planning on working on the package and class diagrams today and tomorrow?
Planning on trying to get some implementation stuff done today. Been doing a lot of family activities since being home for Spring Break. I'd be glad to look over some class diagrams when you have some as well. Reminder that I put a really rough class diagram in the model design channel, but it might provide a good starting point.
Avatar
@everyone I am having trouble with one of the imports. Might be because my GitHub did not automatically set source folders, so I had to do so manually (currently its the java folder to align with the package names). Does anyone know a solution or what settings I need to adjust?
15:19
(I think the error in the console is related to something else, I'll get to fixing that eventually)
Avatar
Okay, nevermind for now. I seem to have fixed the issues
Avatar
Not sure. That is really weird. I'm not a expert with Intel8j sorry
16:07
I usally clear the cache and it fixes things
16:07
Sorry it's a bit late replying to this been at work all fay
Avatar
No worries. Part of it is that my Java installation may be a bit borky. But yes, I literally cleared caches and restarted and that seemed to reformat the project so it worked.
Avatar
Gotcha gotcha
16:08
I've made the mistake of switching back to Java 8
16:08
Because I have a lot of.old projects that don't run on future java versions :/
Avatar
Got a good amount of work done today! Check the model-design channel for a brief update.
Avatar
I wanted to double check on part of functionality, as there seems to be a potential discrepancy. One of my GitHub issues (#3) mentions that only n number of stars are allowed to be placed in a certain region. However, if we prevent the actual placement of the stars, that would mean no invalid stars could be placed and that function would be unnecessary. So my understanding is the issue is referring to the rules of the game, but is not mechanically enforced. Does that seem reasonable?
Avatar
Yeah that seems reasonable to me
Avatar
@everyone thanks for the prank haha
Avatar
Avatar
Seth
@everyone thanks for the prank haha
Your welcome šŸ˜‰
14:59
Happy april fools lol
Avatar
Oh... it was so hard to tell on mobile
Avatar
Right! I thought I missed a whole conversation lol
Avatar
@everyone Would people be available to meet for a short time tomorrow to do a quick post-Spring Break check?
Avatar
Avatar
Brandon
@everyone Would people be available to meet for a short time tomorrow to do a quick post-Spring Break check?
what time were you thinking?
Avatar
I didn't really have a time in mind. Now that I'm done with rehearsals for the time being I'm much more flexible. Right around after class would probably be easiest for me though.
Avatar
okay. Id need to check with somebody. right after class may work, or like 20m after class
15:04
I drive somebody every day,m but the time differes each day when I pick her up
15:05
im also totally happy to call after like 7pm today
Avatar
I could probably do that too
Avatar
just lmk what your thinking is. Im chill w/ anything
15:12
ill let you know as soon as I know what time tomorrow i can meet
15:12
I have not looked at anything you comitted yet, but If its helpful I can look at it before the meeting
Avatar
Maybe helpful, but not necessary. I will probably try and summarize most of what I did during the meeting anyway.
Avatar
okay
Avatar
Avatar
Brandon
I didn't really have a time in mind. Now that I'm done with rehearsals for the time being I'm much more flexible. Right around after class would probably be easiest for me though.
I can do right after class. I'm picking up my friend between 4pm and 5pm
Avatar
@Brandon I like your puzzle and puzzle dto, I think I'll split my display class and have an intermediate puzzle logic class, which is essentially your puzzle class right now Then in the display you can call update or something after all the logic completes. Then we don't have the recursive issue we talked about
14:06
It won't be until later tonight that I can worn on it I got a work meeting tonight
šŸ‘ 1
Avatar
Do you have to make your own version of my class (an intermediate puzzle logic class as you say), or can you just work directly with the already existing class?
Avatar
Avatar
Brandon
Do you have to make your own version of my class (an intermediate puzzle logic class as you say), or can you just work directly with the already existing class?
combine them both, most likely ill copy your class and add methods from my classes
18:06
not sure atm
18:07
haven't throught about it much in detail, but ill do it in a fork just to be saafe
Avatar
I'm just concerned about keeping the distinction between UI and domain
Avatar
currently its combined in my class
18:07
I want to seperate it like you were showing today
18:08
add more seperation, so the display takes in a puzzle class. Alklk the logic is in the puzzle class
18:08
and the display just handles drawing it
Avatar
That sounds good
Avatar
ill start working on it tomorrow. trying to get a bunch of stuff done for work atm
Avatar
No worries, we have until Thursday now (probably important info for Chris as well)
Avatar
@Seth I have copy pasted your Stopwatch class into the project, and added a callback to update the UI https://github.com/plu-cs390/starb-webb/blob/seths-stopwatch/src/main/java/webb/client/ui/screens/puzzlescreen/StopWatch.java
08:47
it's in its own branch for now, but will be merged with the main branch hopefully today or tomorrow. going to try and get everything integrated
Avatar
Avatar
Eric Golde
@Seth I have copy pasted your Stopwatch class into the project, and added a callback to update the UI https://github.com/plu-cs390/starb-webb/blob/seths-stopwatch/src/main/java/webb/client/ui/screens/puzzlescreen/StopWatch.java
Awesome I’ll be sure to look at it today!
Avatar
@Brandon I have combined everything, and it compiles. I have not totally tested with your test methods, but everything now lives in the Cell class and the PuzzleComponent class. I may split the PuzzleComponent into a Seperate Puzzle class like you had for all the logic, and the PuzzleComponent is just for UI, but I have not done that yet
10:36
At somepoint do you mind checking it out, and making sure your methods still work how they did before I made these changes?
Avatar
Yes, I'll try and take a peek at it today and see how things are functinoing.
Avatar
I basically changed all your strings to CellType, and moved them into the PuzzleComponent class. There were a few minor changes but it was relitively simple to move things
10:37
I coulden't remember what you said in terms of how these are drawn, but it shopuld be a simple change to have these displayed differently to the client
10:38
I should be on most of the day today, I am totally down to jump in a call with you if things don't seem to be working correctly
Avatar
That seems mostly correct. AMARKER represents your Player_Marker that have been placed specifically because they are adjacent to a Star and auto-marking is enabled. VMARKER are Player_Markers that have been placed automatically because of a row or column with sufficient stars. They are handled differently internally so that they can be differentiated and removed separately, but in terms of graphics they should probably all look the same.
Avatar
Gotcha gotcha!
Avatar
And you are correct, INVALID is just what I called Red Stars
Avatar
thats what I thought, but I just added new types to make translating it easier
10:41
I can always go back and remove invalid, and rename it to red_star etc
Avatar
@Eric Golde Just checked over your combined class and everything looks properly ported over. Noticed one small error in the copied checkRow method, which is a AMARKER type that should have been EMPTY. I will push that change. Its a little hard to tell if its working without a test class of some variety, so do you have one already made somewhere? Also, my main concern is that this doesn't really follow the model-view separation principle that Professor Wolfe was advocating, since the object that draws the UI elements is the same as the one that does the logic/domain work in this case. That might be good reason to separate the classes like you were talking about.
Avatar
Avatar
Brandon
@Eric Golde Just checked over your combined class and everything looks properly ported over. Noticed one small error in the copied checkRow method, which is a AMARKER type that should have been EMPTY. I will push that change. Its a little hard to tell if its working without a test class of some variety, so do you have one already made somewhere? Also, my main concern is that this doesn't really follow the model-view separation principle that Professor Wolfe was advocating, since the object that draws the UI elements is the same as the one that does the logic/domain work in this case. That might be good reason to separate the classes like you were talking about.
Nice catch, tysm! I edited your test class to hopefully test correctly, but I also didn't totally understand what your test class did or what the expected out put was.
Avatar
Ah, fair enough, I'll take a look at that as well
Avatar
Yeah, more I think about it ill get those classes seperated
Avatar
I have the cell class split. Working on puzzle still. I did find a intresting bug in my drawing code by splitting these apart, so I'll work on getting that resolved
Avatar
Ive seperated the puzzle class. Theres some weird issues or I am not understanding how the VMARKER works. Weirdly the entire board is filled with vmarkers? You also can't remove vmarkers with right click?
Avatar
@Brandon I double checked everything with Master branch, and im still getting output that looks like this
18:47
Its driving me bonkers
Avatar
I'll take a look, just a bit here
Avatar
No rush on it, i just am going to take a break from it lol
18:49
i feel like ive tripple checked everything
Avatar
Is this on the main branch or still in the alternate combination branch?
Avatar
Main branch has the merged code, logic-and-drawing-split is the new split version of the code
Avatar
I see it now, thank you
Avatar
@Eric Golde You're gonna hate me (not really) when I tell you that everything is working as intended. V-Markers are placed in rows/columns that already have the requisite number of stars in them (2 in our puzzles cases). Because you are displaying the solution (plus an extra star somewhere it looks like?) there is of course going to be the correct number of stars in each row, and thus you shouldn't need to/be able to place any more stars. Thus, all the spaces show up as V-Markers.
Avatar
Avatar
Brandon
@Eric Golde You're gonna hate me (not really) when I tell you that everything is working as intended. V-Markers are placed in rows/columns that already have the requisite number of stars in them (2 in our puzzles cases). Because you are displaying the solution (plus an extra star somewhere it looks like?) there is of course going to be the correct number of stars in each row, and thus you shouldn't need to/be able to place any more stars. Thus, all the spaces show up as V-Markers.
oh ok, shoud I make them not display the gameboard then? Also I don't think there should be an extra star?
11:04
I went home to Bellevue today due to some family stuff thats going on. Ill try to be as active as I can but I can't make any promisses
Avatar
Avatar
Eric Golde
oh ok, shoud I make them not display the gameboard then? Also I don't think there should be an extra star?
Theoretically calling checkBoard with visible set to false should leave the spots empty, not filling them with VMARKERs. I'm not sure if there is an extra star, or if my adjacency check is just off, but if this is the solution that it is displaying, there shouldn't be any invalids
Avatar
@everyone I have uploaded all of the Class Diagrams (I think, someone let me know if they haven't showed up in the iteration 2 folder), so if we are all merged and tagged, I think we are close to ready to submit. I'm not sure exactly how it was submitted last time, so maybe whoever handled it for iteration 1 would be willing to do so again?
Avatar
you rock, tysm
21:02
sorry i haven't been on much
21:02
@Chris tagged it last time, but I am happy to do so if everythings ready
21:02
that I can probs do from my phone
Avatar
Either one of you would be great. Might wait a little while to see if the other two confirm submission, but otherwise it sounds like its ready.
Avatar
@Eric Golde It has been an hour, so I say if you are able, go ahead and tag it and get this submitted!
Avatar
I’d say go ahead I don’t think I can get the player stats done in time and I don’t want y’all to stay up but I’ll be working on it tomorrow
Avatar
No worries, thats part of what's nice about iterations, we can just call that part of the next iteration!
Avatar
Yeah plus I believe this iteration is dealing with server so I can implement it a little bit better I think
Avatar
@everyone Did someone here tag and submit iteration 2?
Avatar
Avatar
Brandon
@everyone Did someone here tag and submit iteration 2?
I believe Chris did the tag last time
Avatar
I meant has someone done the one that is due tonight?
Avatar
Avatar
Brandon
I meant has someone done the one that is due tonight?
Oh I have not I don’t know how
Avatar
@everyone Okay, I figured out how to tag it! We are submitted!
🄁 1
Avatar
Avatar
Brandon
@everyone Okay, I figured out how to tag it! We are submitted!
Thank you so much!! You’re the best
Avatar
Avatar
Brandon
@everyone Okay, I figured out how to tag it! We are submitted!
Thank you so much. I'm so sorry as soon as I got home I crashed . I just woke up after missing 2 alarms
Avatar
hey guys Dr.Wolff posted the grade for iteration 2 and i just want to say im sorry for the low contribution for this iteration and i will try to help out more!
Avatar
Your fine. I haven't looked at grades but like it's chill my dude
Avatar
we got 100
Avatar
Is it on Sakai?
20:59
On my phone rn
Avatar
Yeah it’s on sakai
Avatar
@everyone Hey, just giving everyone the heads up that I feel even more sick today than on Monday (I have a bad fever), so I will not be in class. I know this makes things difficult for our group, especially considering this iteration deals with a lot of server stuff and the documentation on the website doesn't quite make sense to me. I will do my best to stay active as I am able via Discord, but I would also greatly appreciate if you all can assist with some of the content for this iteration. The notes Eric sent were very helpful. Thanks everyone.
Avatar
Avatar
Brandon
@everyone Hey, just giving everyone the heads up that I feel even more sick today than on Monday (I have a bad fever), so I will not be in class. I know this makes things difficult for our group, especially considering this iteration deals with a lot of server stuff and the documentation on the website doesn't quite make sense to me. I will do my best to stay active as I am able via Discord, but I would also greatly appreciate if you all can assist with some of the content for this iteration. The notes Eric sent were very helpful. Thanks everyone.
Of course man you’re health comes first! Hope you get better soon!
Avatar
Avatar
Brandon
@everyone Hey, just giving everyone the heads up that I feel even more sick today than on Monday (I have a bad fever), so I will not be in class. I know this makes things difficult for our group, especially considering this iteration deals with a lot of server stuff and the documentation on the website doesn't quite make sense to me. I will do my best to stay active as I am able via Discord, but I would also greatly appreciate if you all can assist with some of the content for this iteration. The notes Eric sent were very helpful. Thanks everyone.
Its okay. What's important is you get better. We can easily meet on zoom if you are well enough for that If you would like I am happy to take and send my notes today too
Avatar
@everyone Just wanted to check in with the group and see if we have made any progress on iteration 3 during my absence. I've been feeling really lost on this one because I've been sick so much (turns out it was COVID, oof), and I'm afraid its made it difficult to contribute as much as I would like.
Avatar
Avatar
Brandon
@everyone Just wanted to check in with the group and see if we have made any progress on iteration 3 during my absence. I've been feeling really lost on this one because I've been sick so much (turns out it was COVID, oof), and I'm afraid its made it difficult to contribute as much as I would like.
Its okay. I don't think anything has been done yet. I was planning to take a look today on what we need to do. This weekend is hecka hectic for me
Avatar
Hey sorry, I've been out. I've been really busy with outside of school stuff, and emotionally down. Going forward, I will be more communicative and engaged, I just needed to take a pause.
07:57
I can send a when2meet, to make a game plan about how we wanna tackle this sprint. I can help out since I have experience with SB and RESTful apis
Avatar
Sounds good and also I believe we have another week for this iteration
Avatar
Oh good!
07:59
Avatar
Avatar
Chris
@everyone https://www.when2meet.com/?19751977-iaLm7 Here is the link
Thanks for sending this. Just filled it out
šŸ‘ 1
Avatar
Avatar
Chris
@everyone https://www.when2meet.com/?19751977-iaLm7 Here is the link
When2Meet filled out.
21:09
ill try tomorrow to take a look at the server stuff
21:10
I finished AI2 today, trying to get hw done to make my day less chaos this week 😭
Avatar
Thanks everybody, @Seth once you fill it out when we can pick a time
Avatar
Ok I think I filled it out
Avatar
We got a time Wedsnesday or Thursday here
17:25
I'd vote tomorrow
Avatar
@Eric Golde, Brandon, Seth, and I decided at the end of class that we should meet tonight @8pm, that cool with you? Couldn't reach you in time, seemed like you needed to go somewhere?
Avatar
Avatar
Chris
@Eric Golde, Brandon, Seth, and I decided at the end of class that we should meet tonight @8pm, that cool with you? Couldn't reach you in time, seemed like you needed to go somewhere?
Yeah that should work
13:50
Sorry I left abruptly I'm somebodies ride today its a bit chaotic
Avatar
Coming
20:08
@Eric Golde, we are all ready. We are going to get started in the 2 minutes, let us know if you can't come
Avatar
@Brandon so I am not sure how I got this to occurr, but there are no stars placed on the grid, but the A and A markers never got cleared correctly when removing the stars. Now the game is in a bugged out state
22:15
It may just be a cosmetic thing, still trying to figure that one out
Avatar
Seems like the clearAdjacent method is just not getting called. Might be the case depending on how the removal of the stars is occurring (assuming these were placed correctly in the first place)
Avatar
Avatar
Brandon
Seems like the clearAdjacent method is just not getting called. Might be the case depending on how the removal of the stars is occurring (assuming these were placed correctly in the first place)
I think it may be related to the UI, because if I spam click the cells, weird things start happening. I have a feeling the UI is somehow desync'd from actual logic
22:19
if I print the board it seems correct logic side
Avatar
Ive unmocked what I believe is every GET request we would need to do from the client, and provided some example json from my test server ive setup to test the UI. https://github.com/plu-cs390/starb-webb/issues/40 As for post requests, ive left some methods and examples for now. I am happy to write them, but I may need some clarification on some of them. https://cs390.golde.org/json-api-mockup/ Also, apoligies for the mass emails me commenting on issues may have created šŸ™‚ (edited)
Avatar
Just giv8ng yall a heads up I can't stay after class today I have a DJ gig at a middleschool in Seattle and the timing is tight to pick up and setup equipment. I was tempted to skip todau but I don't think Wolff would appreciate me skipping to DJ lol
šŸŽšļø 1
Avatar
Avatar
Eric Golde
Just giv8ng yall a heads up I can't stay after class today I have a DJ gig at a middleschool in Seattle and the timing is tight to pick up and setup equipment. I was tempted to skip todau but I don't think Wolff would appreciate me skipping to DJ lol
All good man lol
Avatar
Avatar
Eric Golde
Ive unmocked what I believe is every GET request we would need to do from the client, and provided some example json from my test server ive setup to test the UI. https://github.com/plu-cs390/starb-webb/issues/40 As for post requests, ive left some methods and examples for now. I am happy to write them, but I may need some clarification on some of them. https://cs390.golde.org/json-api-mockup/ Also, apoligies for the mass emails me commenting on issues may have created šŸ™‚ (edited)
Oh nice thats nifty! I actually was have the full API spec here too. No worries about the emails or staying after class today
09:36
Should include everything we need, I've also included endpoints that need authentication
09:39
There's some nuance to the endpoints, for example puzzle level ids are server generated and cannot be updated. You can only update the amount of Puzzles the user has completed. No username change is supported for simplicity's sake. as it's a used as a unique identifier for other endpoints, and we'd have to change all records associated with that username for example their data for a particular puzzle (edited)
Avatar
Avatar
Chris
Oh nice thats nifty! I actually was have the full API spec here too. No worries about the emails or staying after class today
oh awesome. Ill work on getting what I posted changed over to meet that spec ui side
Eric Golde pinned a message to this channel. 21-Apr-23 09:45 AM
Avatar
just pinning it so I can find this again
Avatar
@Eric Golde Sounds good man. I hope that's not too much work,. And if you have any suggestions or I missed something, feel free to tell me šŸ™‚
Avatar
Avatar
Chris
@Eric Golde Sounds good man. I hope that's not too much work,. And if you have any suggestions or I missed something, feel free to tell me šŸ™‚
sounds good. im in class rn. Only thing thats weird I see atm is GET /puzzles and GET /puzzles/{id} are the same response?
Avatar
One returns an array of objects, the other returns an object. I didn't know how to create multiple entries for the endpoints that return an array (edited)
Avatar
I guess its just confusing if your pulling down all the puzzle data anyway, why have two requests for it?
Avatar
Retrieving all puzzle level data can be cached on the client side, as opposed to making n requests. N being number of levels. Level data itself doesn't usually change, so I thought it would be helpful in that regard
Avatar
ahh gotcha
09:53
so when we boot the game, I should download all puzzles and cache them? (either to disk, ram etc) (edited)
Avatar
I was intending that yeah. I'm still thinking if solvedbyNumPlayers should be included or that should be included in the GET /puzzles/{id} request
09:55
But actually that could help for statistics I think, like if you wanted to make like a barchart of data. haha idk. Do you think it's worth even changing @Eric Golde (edited)
Avatar
Not sure atm, sorry multitasking note taking lol
Avatar
oh no worries
09:56
Leave it as it, I think it's not too important tbh
Avatar
ok. Ill see what I can do this weekend to move it to this new API
09:57
and ill change my temp server to reflect this data in raw json files just for testing
Avatar
Thanks Eric! I'll be making stories today for implementing this API both on the client and server
Avatar
sounds good
09:59
on the unmocking card I just made a bunch of checkboxes of what I have implemented, It was easier then making a bunch of issues on git (edited)
Avatar
here is some mock data for the user (edited)
10:01
oops wait
Avatar
its all good, I can generate a bunch
10:01
Ive been using this to generate mock data https://www.mockaroo.com/ (edited)
A free test data generator and API mocking tool - Mockaroo lets you create custom CSV, JSON, SQL, and Excel datasets to test and demo your software.
10:01
Oh yeah that's what I use too
Avatar
I tested the leaderboard with 1000 entries, it loaded very quickly but the scrollbar bugged out lol
šŸ‘€ 1
10:03
I see, there is a public url down below
10:03
Lemme change it
10:04
no rush on it
Avatar
Try now
Avatar
works (edited)
šŸ‘Œ 1
10:04
going to move these into a new channel just so I can easily find it
Avatar
haha fair, yeah. feel free to change the blanks to 0%. I didn't know how to choose the blank value b/c it defaults to null (edited)
Avatar
ive moved them to #api-shiz
10:05
ill mess w/ it
Avatar
Ill also work on a shared package that has all the PoJo's in it, so when the server is made it very easy to generate the correct json, and the json is intrepreated orrectly
šŸ”„ 1
10:18
also @Brandon I think I may have fixed the UI desync issue. I think it was that visablity flag not getting cleared correctly, so hidden V and A markers when turned into stars were still hidden
Avatar
@everyone does anyone has some free time to talk about the server and the stats?
Avatar
Yes, I can hop in for a bit
Avatar
Avatar
Seth
@everyone does anyone has some free time to talk about the server and the stats?
im in a work meeting rn
21:34
if I get off at a reasonable time and if yall still in the call ill jump in
Avatar
@Eric Golde I'm gonna be updating the class diagrams soon. Is there a particular branch that would be best to look at for changes that you may have made to the classes?
20:53
I'm mostly interested in major changes, not little tweaks here and there
Avatar
@Chris the UserControllerIT is where you want the JUnit test to go correct?
Avatar
Oh thats a good point, I suppose I should specify that I had IntelliJ autogenerate me the JUnit test class, so I didn't end up using LeaderboardControllerIT, so it can be deleted before the final merge. Mine is LeaderboardControllerTest
Avatar
alrighty that sounds good
Avatar
hey if anyone is available i am having a hard time setting up the UserController
Avatar
ill be availabe in 5 min
Avatar
alright
Avatar
I have created an Iteration 3 folder in the Github and uploaded at least the server class diagrams. I'm going to try to update/consolidate the old class diagrams, but it may not get done in time, so we at least have this. I don't remember exactly whom was in charge of this, but lets also try and get the package diagram in there.
Avatar
Avatar
Brandon
@Eric Golde I'm gonna be updating the class diagrams soon. Is there a particular branch that would be best to look at for changes that you may have made to the classes?
Everything client relat3d besides my new sounds and small UI tweaks is in the main branch
Avatar
Perfect, I'm hard at work as we speak šŸ˜‰
Avatar
Avatar
Brandon
@Eric Golde I'm gonna be updating the class diagrams soon. Is there a particular branch that would be best to look at for changes that you may have made to the classes?
Sorry for the kate reply, I just got home from work
Avatar
No worries
22:54
I just went ahead and got started based off main, so it seems it was a good call
Avatar
Ye ye
22:54
My Eric's ui shananagans is just fancy tweaks like music, error handler, outlined buttons. Etc. All eye candy
22:54
Not any functionality
Avatar
Cooleo
Avatar
package diagram all done
Avatar
Sweet, I'm almost done with updated class diagrams for everything
Avatar
Class diagrams done and uploaded, I'll leave the tagging and submission to you guys!
Avatar
coolio, thanks Brandon!
Avatar
Tysm!
Avatar
Did you figure out that error @Eric Golde because it might because I added an extra field called SumPuzzles or something and it might not know what to do if that doesn’t exist?
Avatar
Haven't looked into it. Helping friend move today. I'll try and look into it when I get done tonight with moving
šŸ”„ 1
Avatar
Avatar
Chris
Did you figure out that error @Eric Golde because it might because I added an extra field called SumPuzzles or something and it might not know what to do if that doesn’t exist?
so i just realised that the main branch is still using my test server, and not the actual server
08:49
Which branch has the most uptodate server? main?, serverFoundation? (edited)
Avatar
Most likely severfoundationChrisVersion
Avatar
okay cool cool
08:50
Ill pull tht and try it out with the client today (edited)
08:50
working on getting the framework for making authenticated requests
Avatar
Ok I won’t be in class I started to feel unwell at work today
Avatar
No worries, get well soon my dude!
Avatar
I may be just doing this wrong, but I have the server running, and its returning 401 for users/johndoe? I am sendingmy request with the auth header: Authorization: johndoe (edited)
Avatar
I can't even seem to create any new accounts? Its most likely something I am doing wrong curl --location '10.0.0.23:1337/users/' \ --header 'Authorization: johndoe' \ --header 'Content-Type: application/json' \ --data '{ "username": "johndoe" }'
15:17
I just get 401 unauthorized
Avatar
Huh weird
15:18
I’ll try this out in a bit
Avatar
No worries
15:18
I just built from main
Avatar
also, got this randomly in the console?
19:19
java.lang.IllegalArgumentException: Invalid character found in method name [0x160x030x010x000x9a0x010x000x000x960x030x030xf00x020xcf\VF\C0x990x0a0xa10xd92kZ~o?[0x01B0x8d0x0d0x1e}H0x990xc3<0xc90xb40xe00x000x000x1a0xc0/0xc0+0xc00x110xc00x070xc00x130xc00x090xc00x140xc00x0a0x000x050x00/0x0050xc00x120x000x0a0x010x000x00S0x000x050x000x050x010x000x000x000x000x000x0a0x000x080x000x060x000x170x000x180x000x190x000x0b0x000x020x010x000x000x0d0x00&0x00$0x060x010x060x030x060x020x050x010x050x030x050x020x040x010x040x030x040x020x030x010x030x030x030x020x020x010x020x030x020x020x010x010x010x030x010x020xff0x010x000x010x000x000x0f0x000x010x010x000x120x000x00...]. HTTP method names must be tokens
19:19
at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:419) ~[tomcat-embed-core-10.1.4.jar!/:na] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:272) ~[tomcat-embed-core-10.1.4.jar!/:na] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-10.1.4.jar!/:na] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:859) ~[tomcat-embed-core-10.1.4.jar!/:na] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1734) ~[tomcat-embed-core-10.1.4.jar!/:na] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-10.1.4.jar!/:na] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-10.1.4.jar!/:na] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-10.1.4.jar!/:na] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-10.1.4.jar!/:na] at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]
Avatar
@Chris I found the issue. // don't do anything, if the request is a POST request and from /users endpoint if(request.getMethod().equals("POST") && request.getRequestURI().equals("/users")) { filterChain.doFilter(request, response); return; } needs to be // don't do anything, if the request is a POST request and from /users endpoint if(request.getMethod().equals("POST") && request.getRequestURI().contains("/users")) { filterChain.doFilter(request, response); return; }
🫢 1
15:29
because post requests have a trailing / at the ened, /users/
15:33
This seems to fix all the issues I have been having. I will let yall know if I find out anything else weird
Avatar
Client auth works with the server now, and almost all data is coming from the server. Going to work on when you complete a puzzle, and getting those side buttons working.
Avatar
@Chris should we even use the validate button? Once you place the final star should it just do the confetti and say you won? (edited)
Avatar
I feel like there shouldn't need to be a validate, but it depends on how the program checks for a victory condition. Does it check against the solution every time a star is placed?
Avatar
Avatar
Brandon
I feel like there shouldn't need to be a validate, but it depends on how the program checks for a victory condition. Does it check against the solution every time a star is placed?
thats what I was thinking
18:18
or it checks when you click the validate button
18:18
I can do either just want some input
Avatar
My inclination is that the program does it automatically, because otherwise the player may actually have the solution, but then doesn't verify it, so it doesn't count as being completed. Maybe not a likely outcome, but definitely possible.
Avatar
gotcha gotcha
18:20
also Brandon, I can't totally figure out the issue with the logic code and clicking on a VMarket or AMarker in order to show a red star
18:21
I am totally happy to jump in a call sometime next week and debug it with you, or if you want to take a stab at it on your own
Avatar
Yeah, I can do that. Just for my sake right now though, what seems to be the issue?
Avatar
Suppose I try and place 2 stars next to eachother, I can't
18:22
because the star is surrounded by markers
18:22
If I click on a marker, it should turn it temporarly into a red star, to indicate we can't legally place a star there
Avatar
Gotcha, are you working on main branch currently? I think the fix to that is actually pretty simple with how I have it coded right now.
Avatar
I am not, but I can pull from main and merge it
Avatar
Yeah, I'll check it in main and let you do that
Avatar
tysm ā¤ļø
18:24
theres no rush on any of it, its just something that should get done before we turn it in lol
18:24
I also want to merge STAR_RED and INVALID CellTypes, because I think they are the same if I am not mistaken?
Avatar
Yeah, I'm trying to remember why I coded it that way in the first place. I think my thought process was that in order to solve the puzzle, you should never have two stars adjacent, but I could see a case for wanting to place them anyway. Oh, and it was when the A-Markers weren't visible huh. Also, yes, I believe STAR_RED and INVALID are the same
Avatar
ahhhh gotcha gotcha
18:27
ill remove STAR_RED once the logic works the way we think it should
18:27
don't want to create excess merge conflicts lol
šŸ‘ 1
Avatar
Okay, I actually think that may be all it needs. I pushed a change that added a case to CellLogic changeType that turns A-Marker's into stars. Then since it should be called through PuzzleLogic, it will checkBoard and immediately set it to invalid if it needs to. I think some of my code was made under the assumption that visibility would be a toggle, not a hold function, so that's where some of this discrepancy is coming from.
18:33
The only worry is that normally markers turn into empty spaces, but my understanding is that A-Markers are only visible while you hold down the visible button, during which you cannot change the types, so it should be fine.
Avatar
it should be fine I guess unless they have a touch screen and do something weird?
18:34
thats a pretty big edge case but good to be aware of none the less
18:35
just pulled, and it works flawlessly
18:35
tysm!
Avatar
Perfect, sometimes the fixes are simple
Avatar
so clearly my solution code doesnt work right lol
18:35
1 star solution here we go
Avatar
Avatar
Brandon
Perfect, sometimes the fixes are simple
i looked at the logic for 20+ min 😭
Avatar
Simple to the guy that wrote it at least šŸ˜…. Perhaps my documentation still needs some work
18:37
But that's what this class is all about
Avatar
100% (edited)
Avatar
Avatar
Eric Golde
@Chris should we even use the validate button? Once you place the final star should it just do the confetti and say you won? (edited)
Hmm yeah, I mean the validation that I had, checks intermediately. But if they had one star remaining then yeah it should be automatic
18:51
But, at this point whatever is easiest
Avatar
Avatar
Chris
But, at this point whatever is easiest
šŸ‘
18:52
working on it displaying the congrats screen from the server now
18:53
Its a bit confusing, but I think whenyou finish a puzzle the game would need to call the endpoints: PUT /puzzles/users/username/levelid/ with the solve time etc, and then call GET /users/username to get everything thats displayed in the congrats screen? (edited)
Avatar
Yeah that's right
šŸ‘ 1
19:03
The progress and title of the user is in that endpoint
Avatar
awesome, sounds good
19:03
I am implementing when you place a star, it submits to the server your current status, where you placed stars and markers (edited)
Avatar
@Brandon so only issue, is the horizontal markers I can't place a red star
20:45
for example, I wanted to place 3 stars all in the same row
20:45
Im not sure I am explaining it super well sorry
Avatar
Currently this is intentional. You shouldn't be able to place an extra star in that row as it violates the rules of the game. That can be changed if we so desire.
Avatar
gotcha gotchA!
20:46
makes sense, just didn't know if it should be a red star or not
20:46
trying to do a bunch of testing when i change UI stuff
Avatar
Avatar
Eric Golde
makes sense, just didn't know if it should be a red star or not
It could be, that would be the alternative. Again, I think it depends on whether or not you can see the markers at any given time. If normally all markers are invisible, then you probably should be allowed to place a star even if it would violate the row or column rule.
20:49
right now im trying to figure out why the server isn't ever replying to my http requests
20:49
im close to having some more stuff done though!@
Avatar
@Chris I am trying to make a PUT request to http://10.0.0.23:1337/puzzles/users/johndoe/1 Body: {"levelId":1,"username":"johndoe","completed":false,"solveTime":0,"placedMarkers":[],"placedStars":[[0,0]],"starsRemaining":0,"id":null} I am authorized as: johndoe (edited)
21:17
21:18
Something in the user controller is throwing a null pointer. Ive been stairing at the server bashing my head into why something is null but can't seem to figure it out
Avatar
Hmmm. Interesting, haven't seen that. I need to think about it. If you had an Authorization header on that request, I'm not sure why the user principal object would be null
08:19
I'll try to look into, I apologize for not getting back earlier. I have capstone presentations this week, so all my attention has been on that
Avatar
Avatar
Chris
Hmmm. Interesting, haven't seen that. I need to think about it. If you had an Authorization header on that request, I'm not sure why the user principal object would be null
I am just confused how all that gets set with reflection. Header was sent, I can try it with curl with the exact same error occurring
Avatar
Avatar
Chris
I'll try to look into, I apologize for not getting back earlier. I have capstone presentations this week, so all my attention has been on that
its all good, just trying to get the client polished working with the server as much as I can
Avatar
Avatar
Eric Golde
I am just confused how all that gets set with reflection. Header was sent, I can try it with curl with the exact same error occurring
Basically before the request hits the controller, it actually is processed right before, and includes the principal object
Avatar
ah, alright
Avatar
It uses FilterBeanRegistration, which is in the config.
09:12
And then filters based on certain criteria, can learn more in the security package in the server
Avatar
I just tried it again, and now I am getting a 405?
09:13
{ "timestamp": "2023-05-05T16:12:11.735+00:00", "status": 405, "error": "Method Not Allowed", "path": "/puzzles/users/johndoe/1" }
09:13
gotta love when the errors change when you have just gone to sleep
šŸ‘€ 1
09:13
lol
Avatar
Ok so I just made the request again, and now I am getting a 404 UserPuzzle '1-johndoe' not found.
11:49
im going to give up on this for the time being, after the test today I can sit down with you Chris or others and see if I am just misunderstanding or not
Avatar
uh... what the heck
11:51
Unfortunately, I don't have time after class, but I do later today
11:51
like 8?
Avatar
I can do virtual later tonight
11:54
I won't be in tacoma so I can't in person
Avatar
no worries, works for me
Avatar
curl --location --request PUT 'http://ericshome.xyz:1337/puzzles/users/johndoe/1/' \ --header 'Authorization: johndoe' \ --header 'Content-Type: application/json' \ --data '{"levelId":1,"username":"johndoe","completed":false,"solveTime":0,"placedMarkers":[],"placedStars":[[0,0]],"starsRemaining":0,"id":null}'
11:56
I changed one thing in the server, so trailing slashes are always treated the same if it exists or doesnt http://ericshome.xyz:1337/puzzles/users/johndoe/1/ & http://ericshome.xyz:1337/puzzles/users/johndoe/1 would be the same
Avatar
Oh yeah, that is a problem, the way it was implemented is very nitpicky.
11:57
which branch is that on?
Avatar
more-ui-jazz
11:58
curl --location 'http://ericshome.xyz:1337/puzzles/users' \ --header 'Authorization: johndoe' \ --header 'Content-Type: application/json' \ --data '{ "levelId": 1, "username": "johndoe" }' is a 500
11:58
which I think explains why the above put request doesn't exist
11:59
i gtg back 2 class, but I think those are the two big roadblock bugs
Avatar
@Chris if your still down to call I can. Just got back from a suprise family dinner 🄓
21:18
We can also do a different day, it's not anything critical. Just trying to get the client and server to talk how it's documented
Avatar
Sorry atm I'm practicing with my capstone group
21:18
sorry 😦
Avatar
Your good dw
21:18
We can do it a different day
21:18
Good luck on your capstone! I'll try and zoom I'm if I can
Avatar
definitely, thanks Eric šŸ™‚
Avatar
@Eric Golde, I am not getting those same issues for whatever reason... Typically the workflow is like this, Puzzles are generated lazily, so you have to send a request to create a puzzle before getting that puzzle. I tried to reproduce what you were getting by: Creating a user with name john doe, creating a level, updating that level, and then getting it
07:35
Here are the series of requests I made using curl
07:40
1. Create user curl --request POST \ --url http://localhost:1391/users \ --header 'Content-Type: application/json' \ --data '{ "username": "johndoe" }' 2. Create puzzle for johndoe curl --request POST \ --url http://localhost:1391/puzzles/users \ --header 'Authorization: johndoe' \ --header 'Content-Type: application/json' \ --data '{ "levelId": 1, "username": "johndoe" }' 3. Get puzzle for level 1 for johndoe curl --request GET \ --url http://localhost:1391/puzzles/users/johndoe/1 \ --header 'Authorization: johndoe' 4. Update puzzle for johndoe curl --request PUT \ --url http://localhost:1391/puzzles/users/johndoe/1 \ --header 'Authorization: johndoe' \ --header 'Content-Type: application/json' \ --data '{"levelId":1,"username":"johndoe","completed":false,"solveTime":0,"placedMarkers":[],"placedStars":[[0,0]],"starsRemaining":0,"id":null}'
Avatar
Avatar
Chris
@Eric Golde, I am not getting those same issues for whatever reason... Typically the workflow is like this, Puzzles are generated lazily, so you have to send a request to create a puzzle before getting that puzzle. I tried to reproduce what you were getting by: Creating a user with name john doe, creating a level, updating that level, and then getting it
ill give it a shot, thanks
08:51
I think I was mainly misunderstanding how the server all worked, and the order or requests
Avatar
Yeah, sorry about that. It doesn't really say how to order those requests.
08:52
Hopefully that works
Avatar
Depending how boring my next few lectures are I may try it sooner than later šŸ˜‚
šŸ˜‚ 1
Avatar
Avatar
Chris
1. Create user curl --request POST \ --url http://localhost:1391/users \ --header 'Content-Type: application/json' \ --data '{ "username": "johndoe" }' 2. Create puzzle for johndoe curl --request POST \ --url http://localhost:1391/puzzles/users \ --header 'Authorization: johndoe' \ --header 'Content-Type: application/json' \ --data '{ "levelId": 1, "username": "johndoe" }' 3. Get puzzle for level 1 for johndoe curl --request GET \ --url http://localhost:1391/puzzles/users/johndoe/1 \ --header 'Authorization: johndoe' 4. Update puzzle for johndoe curl --request PUT \ --url http://localhost:1391/puzzles/users/johndoe/1 \ --header 'Authorization: johndoe' \ --header 'Content-Type: application/json' \ --data '{"levelId":1,"username":"johndoe","completed":false,"solveTime":0,"placedMarkers":[],"placedStars":[[0,0]],"starsRemaining":0,"id":null}'
@Chris I have gotten to #3 and the server is giving a 500 with this curl curl --location 'http://ericshome.xyz:1337/puzzles/users' \ --header 'Authorization: johndoe' \ --header 'Content-Type: application/json' \ --data '{ "levelId": 1, "username": "johndoe" }'
14:52
Avatar
Same error from before huh. I can't reproduce this... (edited)
Avatar
let me tripple check my code, im bashing my head at this server
14:53
it hates me lol
14:57
Im not sure. Just tried making request #2 again with curl and it gives me a 500 back
14:57
the up to date server besides my tiny changes are in main right?
Avatar
That's right, @Brandon and @Seth are you getting this issue if y'all were to run the server? curl --request POST \ --url http://localhost:1391/users \ --header 'Content-Type: application/json' \ --data '{ "username": "johndoe" }' curl --request POST \ --url http://localhost:1391/puzzles/users \ --header 'Authorization: johndoe' \ --header 'Content-Type: application/json' \ --data '{ "levelId": 1, "username": "johndoe" }' curl --request GET \ --url http://localhost:1391/puzzles/users/johndoe/1 \ --header 'Authorization: johndoe' ??
Avatar
trying to debug it with breakpoints at the moment
Avatar
Currently at the state capitol getting my fingerprints done lol
Avatar
think I found the issue
15:36
think it has to do with the /users endpoint with the post request
15:37
if(request.getMethod().equals("POST") && request.getRequestURI().contains("/users")) { filterChain.doFilter(request, response); return; }
15:37
http://localhost:1337/puzzles/users matches that if statement, and bypasses all authentification
15:37
so then the princable is null
Avatar
Got it all fixed, no need for testing
Avatar
Oh interesting
Avatar
Server and client arre fully communicating. Probably should test this a lot more, but for the most part it all seems to work (edited)
Avatar
Stuff left to do: - Server needs to return nextTitle -Double check API Doc, make sure its updated - Reflection Paper - 2 Server tests that are not completed (if everything else is done, and we want to do this) - user documentation Seth: - Working on user document (edited)
15:21
Does this look good @everyone ?
šŸ‘ 3
Avatar
Just pushed a change to Main so that VMarkers can get changed to Stars when clicked. Should fix our "unresponsive" behavior when you click on an invisible VMarker.
Avatar
Avatar
Brandon
Just pushed a change to Main so that VMarkers can get changed to Stars when clicked. Should fix our "unresponsive" behavior when you click on an invisible VMarker.
let me pull, thanks my dude!
18:41
I gotta revert your change of removing the toDTO function, itss used to convert the Cells to DTOs to send to the server
Avatar
I didn't realize I removed that. I didn't touch it. I think it was something weird with my pull because I saw a warning
Avatar
ah no worries
18:42
its easy to add back
Avatar
Good good, it was unintentional
Avatar
i figured šŸ˜‚
18:43
seems to work, tysm!
Avatar
Awesome
Avatar
im struggling to write this reflection
18:44
it may be a tomorrow task
Avatar
So, I am working on a branch that will include nextTitle and update the documentation
08:54
and I am doing some checking on the client side and ran into this issue: Caused by: java.lang.IllegalArgumentException: Conflicting property-based creators: already had implicitly discovered creator [constructor for webb.shared.dtos.user.UserDTO (1 arg), annotations: [null], encountered another: [constructor for webb.shared.dtos.user.UserDTO (2 args), annotations: [null] On a new user account, when I checked my stats, it couldn't fetch the title for some reason?
Avatar
Avatar
Chris
and I am doing some checking on the client side and ran into this issue: Caused by: java.lang.IllegalArgumentException: Conflicting property-based creators: already had implicitly discovered creator [constructor for webb.shared.dtos.user.UserDTO (1 arg), annotations: [null], encountered another: [constructor for webb.shared.dtos.user.UserDTO (2 args), annotations: [null] On a new user account, when I checked my stats, it couldn't fetch the title for some reason?
Yeah I've run into this before too. Rebooting the server jar seems to fix it
09:34
For some reason the server randomly disconnects from the local host DB
09:34
And never reconnects
09:34
Let me restart it and see if it fixes it for you
Avatar
Oh interesting ok, thanks Eric. I'm pulling together some PRs. One for server changes and the other to remove some unused packages and move client main into webb
Avatar
Try now
09:35
Just killed and relaunched the jar
Avatar
Avatar
Chris
Oh interesting ok, thanks Eric. I'm pulling together some PRs. One for server changes and the other to remove some unused packages and move client main into webb
šŸ‘Œ
09:36
Before we tag it as final we should change it to use local host docker for grading
09:36
But for the class demo I'll keep it as my server
Avatar
Ok sure, that sounds good
09:41
PRs are ready to go, I included you as a reviewer if you wanna look at if, just so I didn't break anything lol.
Avatar
Avatar
Chris
PRs are ready to go, I included you as a reviewer if you wanna look at if, just so I didn't break anything lol.
just gotta find that one email... šŸ˜‚
12:01
ill take a look at your PR's just a moment
12:04
seems good, ill get the client to use this variable later today in a hour or so (edited)
Avatar
Oh rip... sorry guys!
Avatar
Your fine lol
13:44
Its just funny
Avatar
I love the new graphic design on the presentation!
Avatar
Thanks, I just started playing around with some of the options. Make em a bit more interesting to look at ya know
Avatar
100%
Wicked Wiener joined the server. 16-May-23 08:06 PM
Exported 639 message(s)